package com.basic.modules.ykf.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.basic.common.utils.PageUtils;
import com.basic.modules.ykf.entity.YkfCustomerEntity;
import com.basic.common.utils.ParamsModel;
import com.basic.modules.ykf.entity.YkfCustomerShopEntity;
import com.basic.modules.ykf.entity.YkfCustomerSubAccountEntity;
import com.basic.modules.ykf.model.CommissionModel;
import com.basic.modules.ykf.model.ExcelReq;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 客户管理
 *
 * @author maoheng
 * @email 15738859597@163.com
 * @date 2024-04-06 18:40:44
 */
public interface YkfCustomerService extends IService<YkfCustomerEntity> {

    PageUtils queryPage(ParamsModel<YkfCustomerShopEntity> params);

    PageUtils shopBenefitPage(ParamsModel<YkfCustomerShopEntity> params);

    Map<String, BigDecimal> shopBenefit(Date start, Date end, YkfCustomerShopEntity shop);

    PageUtils queryStopPage(ParamsModel<YkfCustomerShopEntity> params);

    PageUtils getHistoricalShop(ParamsModel<YkfCustomerShopEntity> params);

    PageUtils selectPage(ParamsModel<YkfCustomerEntity> params);

    void customerManagement(ExcelReq req, HttpServletResponse response) throws IOException;

    List<CommissionModel> shopBenefitDetail(YkfCustomerShopEntity params);

    Map<String, List<YkfCustomerShopEntity>> groupShopInfo(YkfCustomerEntity param);

    List<String> groupList(YkfCustomerEntity param);

    void dispatchGroup(YkfCustomerEntity param);

    void storeChurnRegistration(ExcelReq req, HttpServletResponse response) throws IOException;

    void customerHistoricalData(ExcelReq req, HttpServletResponse response) throws IOException;

    void customerBenefitInquiry(ExcelReq req, HttpServletResponse response) throws IOException;

    Map<String, Object> customerLvlInfo(YkfCustomerShopEntity params);
}

